System and method for clustering end users to select and deliver a notification to mobile device

ABSTRACT

A system configured to execute programing instructions comprising: receiving a fence including an area having a geographic location, a plurality of notifications and their content attributes are associated with the fence; receiving location and speed from a mobile device of a user; determining the mobile device is stationary for a predetermine amount of time; identifying a location attribute for the location of mobile device; aggregating a plurality of location attributes associated with the user; determining an audience profile and audience profile attributes for the user based on the aggregated location attributes; detecting the user has crossed into an area defined by the fence; and in response to detecting the user crossing the fence: determining a conversion probability based on content attributes of the notifications associated with the fence and audience profile attributes of the audience profile associated with the user; selecting a notification based the conversion probability.

TECHNICAL FIELD

This disclosure relates to a system and method for clustering end usersto deliver a notification to an end user's mobile device. Morespecifically, this disclosure relates to a system and method forclustering end users to select and deliver a notification to an enduser's mobile device.

BACKGROUND

Notifications or promotions are effective tools to pique consumers'interest in a product or service. The notification can include a coupon,discount, sample give away, or some other promotional offer toincentivize the consumer to try the product or service with theexpectation that the consumer will continue to use the product orservice afterwards. To maximize the effectiveness of a notification, thenotification needs to be distributed to a consumer who is likely toconvert on the offer in the notification. Furthermore, the notificationneeds to be distributed at the right time and at the right location. Ageneral and broad distribution of notifications may overwhelm theconsumer causing the consumer to ignore all notifications. Even if theconsumer receives a notification that is of interest to him or her butthe distribution did not take into account of the location of theconsumer, the consumer will need to make an effort to travel to alocation that accepts the offer in the notification or remember that heor she has that notification the next time the consumer passes by afacility that accepts the offer in the notification. This inconvenienceof traveling to a location that accepts the offer in the notification orremembering that he or she has the notification greatly reduces thechance that the end user will convert the offer in the notification.

Furthermore, it would be advantageous for a marketer to know theeffectiveness of a notification. This information allows a marketer todecide whether to run a similar notification in the future, abandon suchnotification all together, or to modify the notification with theexpectation that a modified notification can be more effective. A breakdown on the effectiveness of a notification by a specific subgroup ofend users would also help the marketer to understand how best to targetthe subgroup of end users.

SUMMARY

It is to be understood that this summary is not an extensive overview ofthe disclosure. This summary is exemplary and not restrictive, and it isintended neither to identify key or critical elements of the disclosurenor delineate the scope thereof. The sole purpose of this summary is toexplain and exemplify certain concepts of the disclosure as anintroduction to the following complete and extensive detaileddescription.

Disclosed is a system comprising one or more memory devices storingprograming instructions and one or more processors configured to executethe program instructions to cause the system to perform operations. Theprograming instructions comprise: receiving a fence defined by a firstuser, the fence includes an area having a geographic location, aplurality of notifications and their content attributes are associatedwith the fence; receiving location and speed from a mobile device of asecond user; determining the mobile device of the second user isstationary for a predetermine amount of time; identifying a locationattribute for the location of mobile device of the second user;associating the location attribute with the second user; aggregating aplurality of location attributes associated with the second user;determining an audience profile and audience profile attributes for thesecond user based on the aggregated location attributes for the seconduser; detecting that the second user has crossed into an area defined bythe fence; and in response to detecting the second user crossing thefence: determining a conversion probability based on content attributesof the notifications associated with the fence and audience profileattributes of the audience profile associated with the second user;selecting a notification based the conversion probability; and causingthe selected notification to be displayed on the mobile device of thesecond user.

Also disclosed is a method of delivering notifications to a mobiledevice. The method comprising the steps of: receiving a fence defined bya first user, the fence includes an area having a geographic location, aplurality of notifications and their content attributes are associatedwith the fence; receiving location and speed from a mobile device of asecond user; determining the mobile device of the second user isstationary for a predetermine amount of time; identifying a locationattribute for the location of mobile device of the second user;associating the location attribute with the second user; aggregating aplurality of location attributes associated with the second user;determining an audience profile and audience profile attributes for thesecond user based on the aggregated location attributes for the seconduser; detecting that the second user has crossed into an area defined bythe fence; determining a conversion probability based on contentattributes of the notifications associated with the fence and audienceprofile attributes of the audience profile associated with the seconduser; selecting a notification based the conversion probability; andcausing the selected notification to be displayed on the mobile deviceof the second user.

Also disclosed is a non-transitory computer-readable storage mediumhaving machine instructions stored therein. The instructions beingexecutable by a processor to cause the processor to: receive a fencedefined by a first user, the fence includes an area having a geographiclocation, a plurality of notifications and their content attributes areassociated with the fence; receive location and speed from a mobiledevice of a second user; determine the mobile device of the second useris stationary for a predetermine amount of time; identify a locationattribute for the location of mobile device of the second user;associate the location attribute with the second user; aggregate aplurality of location attributes associated with the second user;determine an audience profile and audience profile attributes for thesecond user based on the aggregated location attributes for the seconduser; detect that the second user has crossed into an area defined bythe fence; determine a conversion probability based on contentattributes of the notifications associated with the fence and audienceprofile attributes of the audience profile associated with the seconduser; select a notification based the conversion probability; and causethe selected notification to be displayed on the mobile device of thesecond user.

Various implementations described in the present disclosure may includeadditional systems, methods, features, and advantages, which may notnecessarily be expressly disclosed herein but will be apparent to one ofordinary skill in the art upon examination of the following detaileddescription and accompanying drawings. It is intended that all suchsystems, methods, features, and advantages be included within thepresent disclosure and protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic of a mobile device of an end user, a personalcomputer of a marketer, and a system for clustering end users andselecting and delivering a notification to the mobile device.

FIGS. 2A and 2B illustrate a method for creating a microfence.

FIGS. 3A, 3B, and 3C illustrate a method for placing an end user into anaudience profile.

FIGS. 4A and 4B illustrate a method for selecting and delivering anotification to an end user's mobile device.

FIGS. 5A and 5B illustrate screen shots of a dashboard showing locationsof existing microfences and for receiving inputs to add a newmicrofence, edit an existing microfence, or delete an existingmicrofence.

FIG. 6 illustrates a screen shot of a dashboard showing attributes forthe audience profile, Kim.

FIG. 7 illustrates a screen shot of a dashboard showing a plurality ofnotifications and performance of the highlighted notification.

FIG. 8 illustrates a screen shot of a dashboard showing the statisticsand performance for the audience profile, Kim.

FIG. 9 illustrates a mobile device displaying a notification selected bythe system.

DETAILED DESCRIPTION

The following description is provided as an enabling teaching of thepresent systems, and/or methods in its best, currently known aspect. Tothis end, those skilled in the relevant art will recognize andappreciate that many changes can be made to the various aspects of thepresent systems, and/or methods described herein, while still obtainingthe beneficial results of the present disclosure. It will also beapparent that some of the desired benefits of the present disclosure canbe obtained by selecting some of the features of the present disclosurewithout utilizing other features. Accordingly, those who work in the artwill recognize that many modifications and adaptations to the presentdisclosure are possible and can even be desirable in certaincircumstances and are a part of the present disclosure. Thus, thefollowing description is provided as illustrative of the principles ofthe present disclosure and not in limitation thereof.

As used throughout, the singular forms “a,” “an” and “the” includeplural referents unless the context clearly dictates otherwise. Thus,for example, reference to “an element” can include two or more suchelements unless the context indicates otherwise.

As used herein, the terms “optional” or “optionally” mean that thesubsequently described event or circumstance can or cannot occur, andthat the description includes instances where said event or circumstanceoccurs and instances where it does not.

The word “or” as used herein means any one member of a particular listand also includes any combination of members of that list. Further, oneshould note that conditional language, such as, among others, “can,”“could,” “might,” or “may,” unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain aspects include, while other aspects do notinclude, certain features, elements and/or steps. Thus, such conditionallanguage is not generally intended to imply that features, elementsand/or steps are in any way required for one or more particular aspectsor that one or more particular aspects necessarily include logic fordeciding, with or without user input or prompting, whether thesefeatures, elements and/or steps are included or are to be performed inany particular aspect.

Disclosed are components that can be used to perform the disclosedmethods and systems. These and other components are disclosed herein,and it is understood that when combinations, subsets, interactions,groups, etc. of these components are disclosed that while specificreference of each various individual and collective combinations andpermutation of these may not be explicitly disclosed, each isspecifically contemplated and described herein, for all methods andsystems. This applies to all aspects of this application including, butnot limited to, steps in disclosed methods. Thus, if there are a varietyof additional steps that can be performed it is understood that each ofthese additional steps can be performed with any specific aspect orcombination of aspects of the disclosed methods.

Environment for Delivering a Notification to Mobile Device

FIG. 1 illustrates an environment 100 of one embodiment of a system 120for clustering end users and delivering a notification to an end user'smobile device. In one embodiment, the system 120 is accessible by an enduser 110, who may be a subscriber to an appl associated with the system120, through two-way communications with the user's mobile device 112.The end user's mobile device 112 is capable of tracking the mobiledevice's location through triangulation of satellites (GPS) 114 orthrough triangulation of cellar towers. The user's mobile device 112 isalso capable of tracking the mobile device's speed via an accelerometerand/or changes in location over time through triangulation. It isassumed that the end user 110 is carrying the mobile device 112 or keepsthe mobile device close to him or her, such as in the vehicle that theend user is driving. Hence, it can be assumed that the location andspeed of the end user's mobile device 112 is approximately the same asthe location and speed of the end user 110. Therefore, the location ofthe end user's mobile device 112 can be used interchangeably with thelocation of the end user 110 and the speed of the end user's mobiledevice 112 can be used interchangeably with the speed of the end user110.

FIG. 1 further illustrates one embodiment of a system 120 accessible bya marketer or an administrator (hereinafter “marketer”) 116, involved inmarketing products or services to consumers, through two-waycommunications with the marketer's computer 118 or some other devicesuch as a tablet or a mobile device. The marketer's computer 118includes an output component, such as a monitor, capable of displayingcontent from the system 120 and at least one input component, such as akeyboard, mouse, or touch screen, capable of sending requests and inputsto the system 120.

In one embodiment, the system 120 is functionally controlled by acontrol unit. The control unit includes at least one speciallyconfigured processor and at least one controller configured to operatewith at least one memory device and at least one data storage device(collectively referred to herein as “memory device”) 124.

In one embodiment, control unit includes at least one speciallyconfigured processor or central processing unit (CPU). In oneembodiment, specially configured processor includes arithmetic logicunits and math co-processors also known as floating point units. In oneembodiment, specially configured processor includes registers forholding instructions or other data, and cache memory for storing datafor faster operation thereupon. In one embodiment, specially configuredprocessor may be a multi-core processor that includes two or moreprocessors for enhanced performance, more efficient parallel processing,or other advantageous computing functions. In another embodiment,specially configured processor may be one or more processing devicessuch as microprocessor(s) or integrated circuit(s) and may include oneor more controllers. It should be appreciated that in some embodiments,a general purpose processor could be programmed to perform the functionsof specially configured processor.

A controller, in one embodiment, is a device or a software program thatmanages or directs the flow of data between two entities. Often,controllers are special purpose circuitry or software that solve atechnical communications problem between different technology systems.In one embodiment, a controller functions as an interface between twosystems while managing the communications between the systems. Inanother embodiment, a controller functions as an interface between aprocessor and a peripheral device and functions to control theperipheral device.

In FIG. 1, at least one specially configured processor and controller(collectively referred to herein as “processor”) 122 is configured tocommunicate with at least one memory device 124. In one embodiment,memory device 124 includes one or more memory structures for storinginstructions and various types of data. Memory structures may includeone or more random access memory units (RAMs) units, one or more readonly memory units (ROMs), one or more flash memory units including solidstate drives (SSDs), one or more electrically erasable/programmable readonly memory units (EEPROMs).

It should be appreciated that in one embodiment, communication with amemory device by a processor encompasses the processor accessing thememory device, exchanging data with the memory device, or storing datato the memory device.

Memory device 124 may store all program code and operation datanecessary for the operation of the system 120 described hereinbelow. Inan alternative embodiment, code and operation data necessary for theoperation of the system 120 may be store in a distributed manner suchthat some code is stored in the memory device 124 and other code isstored remotely from system 120. In one embodiment, the code andoperation data necessary for the operation of the system includes, forexample, basic input and output function data, instruction fetchingdata, bus and network communication protocol data, and like data.

In addition to the memory device 124 described above, in anotherembodiment, the code and operation data for the operation of the systemdescribed hereinbelow may be stored in removable cartridges or flashdrives, a compact disk ROM, a digital versatile disk (DVD) opticalstorage technology, or suitable other fixed non-transitory storagemediums. In another embodiment, part or all of the code and operationaldata for operation of the system may be stored in a remote memorystructure and be downloaded to the memory device 124 via a networkconnection.

In one embodiment, the system 120 may utilize any combination of memorydevices such as random access memory devices (RAMs), unalterable memorydevices (ROMs), and mass storage devices for securely storing andsecurely communicating the software components or code that facilitateoperation and other functions of the system 120.

The subject matter and functional operations described in relation toFIG. 1 can be embodied in hardware, software, or a combination thereof.Described hardware includes the structures described and theirfunctional or operational equivalents. Described functions may beperformed by hardware, digital circuitry, computer software, computerfirmware, or functionally equivalent combinations thereof.

System and Method for Creating Microfence

FIGS. 2A and 2B illustrate a flowchart of an example operation 200 ofone embodiment of the system and method for creating a microfence.

In one embodiment, a processor 122 of the system 120 (shown in FIG. 1)is configured, via instructions stored in a memory device 124, toperform the operation 200. However, it should be appreciated that othersuitable variations of operation 200 are possible. For example, in oneembodiment, fewer or one or more additional blocks (not shown) may beemployed in operation 200 of the system and method. In otherembodiments, the blocks may be performed in any suitable order.

FIG. 2A illustrates one embodiment in which the system 120 receives arequest from a computer 118 of a marketer 116 (shown in FIG. 1), toaccess a dashboard showing locations of existing microfences inaccordance to block 210. The microfence can be a geographic area whichthe system 120 can be triggered to perform certain operations once amobile device enters the microfence. The microfence can be identified asa particular location (including but not limited to GPS coordinate,latitude and longitude, address, road intersection) and a given radius,such as ¼ mile from the location. After the system receives a request toaccess a dashboard, in accordance to block 212, the system 120 causesthe computer monitor 118 of the marketer 116 to display a map showing aplurality of existing microfences, if any, previously created by themarketer or other users having access to the dashboard. After viewingthe originally displayed map, the marketer 116 may decide to zoom in orout to a particular area of interest. In the situation for which thesystem received a signal to display a particular area of interest, asillustrated in block 214, the system 120 causes the monitor to display amap of that particular area showing the microfences, if any, previouslycreated by the marketer or other users having access to the dashboard,as illustrated in block 216.

After viewing the microfences saved in memory device 124 of the system120, the marketer 116 may decide to add or create to a new microfence.In the event that the system 120 received a signal from the marketer'scomputer to add a new microfence, as illustrated in block 218, thesystem 120 updates the database of microfences with the location andarea of the new microfence as illustrated in block 220 and causes themarketer's monitor to display the new microfence on the map, asillustrated in block 222 via off page connector A in FIG. 2B.

In one embodiment, accordance to block 224, the system may receiveinputs from the marketer to select, import, and/or create thenotifications available for and to be associated with the newmicrofence, along with the content attributes associated with eachnotification. The notification includes one or more promotional offers(including but not limited to coupons, discounts, sample give away, andother offers) that are available to an end customer to redeem orconvert. The system then updates database of microfences by saving theavailable notifications for the new microfence to the memory device 124,along with the content attributes for each notification as illustratedin block 226.

After creating a new microfense, the marketer may want to create anothermicrofence. In the event that the processor 122 received a signal to addanother microfence in accordance to block 226, the system updates thedatabase of microfences in memory device 124 with location of the secondnew microfences and the process of operation 200 in accordance to blocks220, 222, 224, 226, and 228 repeats until the processor 122 no longerreceives a signal to add another microfence.

System and Method for Placing End User into an Audience Profile.

FIGS. 3A, 3B and 3C illustrate a flowchart of an example operation 300of one embodiment of the system and method for placing an end user intoan audience profile.

In one embodiment, a processor 122 of the system 120 (shown in FIG. 1)is configured, via instructions stored in a memory device 124, toperform the operation 300. However, it should be appreciated that othersuitable variations of operation 300 are possible. For example, in oneembodiment, fewer or one or more additional blocks (not shown) may beemployed in operation 300 of the system and method. In otherembodiments, the blocks may be performed in any suitable order.

As indicted in block 305, the system 120 may receive inputs from amobile device 112 of an end user 110 (shown in FIG. 1). The inputsinclude information to identify the end user and to determine thelocation and the speed of the mobile device 112. The system 120 uses theinformation received from the mobile device 112 to identify the user inorder to determine if an audience profile has been associated with theend user in accordance to block 310. In one embodiment, if an audienceprofile has not been associated with the user, process of operation 300continues to block 314 to determine the location and speed of the mobiledevice. If an audience profile has already been associated with the enduser, the process of operation 300 continues to block 312 to determineif a predetermined time period, such as one month, has elapsed since theaudience profile for the end user was last reviewed. In accordance toblock 312, if the predetermined time period has elapsed since theaudience profile for the end user was last reviewed, the system 120reassesses whether the end user should be placed in a new audienceprofile by the process of operation 300 continuing to block 314 todetermine the location and speed of the mobile device. If thepredetermined time period has not elapsed since the audience profile forthe end user was last reviewed, the end user will continue to beassociated with that audience profile. The audience profile and itsattributes can be used for other operations, such as “selecting anddelivering a notification to mobile device” to be discussed below inassociation with FIGS. 4A and 4B, via off page connector D.

In one embodiment, if the mobile device 12 is moving at a speed below agiven or predetermine speed (such as 5 m/s or another speed that waspredetermined as an indicator that the end user has purposely stopped ata location); in accordance to block 314, the process of operation thenproceed to determine whether the end user purposely stopped at alocation (“stationary”) or whether the end user stopped unintentionally,such as waiting at a traffic light. If the mobile device 112 is notmoving below a given speed, the process of operation 300 then goes backto block 305 in which the system 120 may receive, from the mobile device112, new information to determine the location and speed of the mobiledevice.

To determine if the end user is stationary, in one embodiment, thesystem may start a timer in accordance to block 318. After a periodictime interval has elapsed, such as one second, the system determines anew location of the mobile device as indicated by block 320. Asindicated by block 322, after the periodic time interval has elapsed, ifthe location of the mobile device remains within a given distance, suchas 10 meters, from the original location determined in block 314, theprocess of operation continues by determining another new location aftera periodic time interval until the timer started in block 318 hassurpassed a given or predetermined amount of time, such as twentyseconds, in accordance to block 324. During the time that thepredetermined amount of time has not elapsed, if the location of themobile device is beyond the given distance from the original locationdetermined in block 314, it is assumed that the end user is notstationary and process of operation 300 goes back to block 305 in whichthe system 120 may receive from the mobile device 112 new information todetermine the location and speed of the mobile device.

In one embodiment, after the timer has surpassed the predeterminedamount of time and the mobile device remained within the given distancefrom the original location determined in block 314, the process ofoperation 300 continues to block 326 via off page connector E in FIG. 3Bin which the system 120 then evaluates if the original locationdetermined in block 314 belongs to any current geofence saved in itsmemory device 124. If the original location belongs to a currentgeofence saved in the system's memory device, the process of operation300 continues to block 330. If the original coordinate does not belongto a current geofence saved in the system's memory device, a newgeofence is created for this location in accordance to block 328 andthen the process of operation 300 continues to block 330.

In one embodiment as shown in block 330, the system submits analysispurpose related data to the Web server through specific web API and thendetermines the location attributes of the geofence location and savesthe location attribute in accordance to block 332. The locationattribute can be the type of product or service provided at thatlocation, such a fast food restaurant, a movie theater, a school, ahospital, etc. The identified location attribute is then saved in thememory device 124 of the system 120 as being associated with end user.In accordance to block 334, if a sufficient number of locationattributes have been saved for the end user, the system aggregates theend user's visits to the different location attributes per time period(day, week, or month) in accordance to block 336. In one embodiment, thenumber of sufficient location attributes is at least a number that wouldbe statistically significant to indicate the habit and behavior of theend user. If number of location attributes saved for the end use has notsurpassed the sufficient number of location attributes, the process ofoperation 300 goes back to block 305 via off page connector F in FIG. 3Ato continue identifying additional location attributes to associate withthe end user.

In one embodiment, if a sufficient number of location attributes havebeen saved for the end user and the system aggregated the end user'svisits to the different the location attributes, the system then groupthe end user's visits to particular locations by their locationattributes, in accordance to block 338. The process of operation 300,then proceed to block 340 in which the system classifies particulardistinct behaviors of the end user by taking into account the clusteredand chosen visiting patterns of the end user. In accordance to block342, these particular distinct behaviors and frequencies associated withthe end user are then stored in a database.

The process of operation 300 continues to block 344 via off pageconnector Gin FIG. 3C in which the system 120 then places an identifierfor the individual end user in a sparse vector space based on the enduser's behavior/frequency analysis. In addition to behaviors based onthe end user's aggregated visits to geofence locations, the end user'sbehaviors can also be derived from end user entered data. In oneembodiment, during the app. registration process, the end user mayprovide personal information about himself or herself, such as his orher preferences and demographics including but not limited to maritalstatus, income range, profession, etc. These user-entered data can bestored in a memory device 124 a. In accordance to block 346, thisuser-entered behavior and demographic information can also be used toplace the individual end user's identifier in a sparse vector space, inaccordance to block 344. The process of operation, in block 348, thenidentifies clusters in this victor space using statisticalanalysis/mathematics models. The system 120, in accordance to block 350,then label individual end users with their profile membership and storethis label in the database. During this process, a ML Classifier, orother machine learning engine, is trained to place individual users intoone of the audience profiles in accordance to block 352. During thisprocess, in accordance to block 354, the system also determines if thereis an existing audience profile having location attributes visits thatclosely matches the end user's aggregated visits to the differentlocation attributes. The audience profile is a hypothetical person thatrepresents a group or cluster of end users having similar attributes.The use of an audience profile allows the system 120 to quickly andefficiently identify the characteristics of an end user by his or heraudience profile when determining the spending habits of the end userand hence the probability of the end user converting an offer. In otherembodiments, if a sufficient number of location attributes have beensaved for the end user and the system aggregated the end user's visitsto the different location attributes, the system 120 then determines ifthere is an existing audience profile that closely matches theaggregated location attributes visits, attributes provided by the enduser (such as the user-entered data stored in memory device 124 a)and/or other attributes collected about the user (such as from publicinformation about the end user available on the internet).

If there is an existing audience profile, the end user is associatedwith that audience profile, along with the audience profile attributesfor that audience profile, in accordance to block 362. The audienceprofile attributes include the behavior frequency for the audienceprofile, such as the audience profile's app usage, the audienceprofile's route commutes, the audience profile's visits to fast foodrestaurants by car, the audience profile's visits to fast foodrestaurants by bus, the audience profile's visit to clothing stores,etc. Examples of audience profile attributes will be further discussedin association with FIG. 7. If there is not an existing audience profilewhich closely matches the end user's aggregated visits to the differentlocation attributes, the system clusters behavior grouping based onbehavior frequency attributes, inferred home/work location categories,etc. to create a new audience profile in accordance to block 356. Whileblocks 350, 352 and 354 are shown in FIG. 3C as sequential steps, thoseskilled in the relevant art will recognize and appreciate that thesesteps can performed by the system 120 simultaneously, interchangeably,or in a different order.

In one embodiment, in accordance to block 358, a marketer furtheranalyzes the cluster to provide a name and description for the newaudience profile. The system 120 generates and saves the new audienceprofile in its memory device 124 in accordance to block 360 and the enduser is associated with that audience profile and the associatedaudience profile attributes, in accordance to block 362. The audienceprofile associated with end user and its attributes can be used forother operations, such as “selecting and delivering a notification tomobile device” to be discussed below in association with FIGS. 4A and4B, via off page connector D. The process of operation 300 goes back toblock 305 via off page connector F in FIG. 3A to continue identifyingadditional location attributes to associate with the end user.

System and Method for Selecting and Delivering a Notification to MobileDevice.

FIGS. 4A and 4B illustrate a flowchart of an example operation 400 ofone embodiment of the system and method for selecting and delivering anotification to an end user's mobile device.

In one embodiment, a processor 122 of the system 120 (shown in FIG. 1)is configured, via instructions stored in a memory device 124, toperform the operation 400. However, it should be appreciated that othersuitable variations of operation 400 are possible. For example, in oneembodiment, fewer or one or more additional blocks (not shown) may beemployed in operation 400 of the system and method. In otherembodiments, the blocks may be performed in any suitable order.

As indicted in block 405, the system 120 may receive inputs from amobile device 112 of an end user 110 (shown in FIG. 1). The inputsinclude information to identify the end user and to determine thelocation of the mobile device 112. In accordance to block 410, thesystem then evaluates whether the mobile device 112 and the end user 110have entered a microfence that was previously created by a marketer 116through the process of operation 200 illustrated in FIGS. 2A and 2B viaoff page connector C. If the end user did not enter a microfence, theprocess of operation 400 goes back to block 405 to receive new inputs,including the end user's new location from the end user's mobile device.If the end user did enter a microfence, in accordance to block 410, thesystem identifies or retrieves from the memory device 124 thenotifications available for and associated with that microfence alongwith the associated content attributes for each notification. Thenotification includes one or more promotional offers (including but notlimited to coupons, discounts, sample give away, and other offers) thatare available to an end customer to redeem or convert. In oneembodiment, the content attributes can be the goods and servicesassociated with the offers provided in the notification. In oneembodiment, content attributes can include but not limited to fast food,cafe, alcoholic beverage, coffee, soft drink, bus travel, train travel,clothing, and other products or services associated with the offerprovided in a notification.

In accordance to one embodiment, based on the audience profileattributes for the audience profile that was previously associated withthe end user through the process of operation 300 illustrated in FIGS.3A, 3B and 3C via off page connector D and the content attributesassociated with notifications available for the geofence retrieved inblock 410, the system 120 generates a conversion probability for the enduser in accordance to block 412. In one embodiment, the conversionprobability represents the likelihood or probability that the end userwill convert the offer provided in a notification. In accordance toblock 414, the system 120 then selects a notification for display to theend user based on the generated conversion probability. The selectednotification can be the notification, from the plurality ofnotifications available for the microfence, that the end user is mostlikely to convert the offer provided in the notification. Once thesystem selects a notification based the generated conversionprobability, the system causes the end user's mobile device to displaythe selected notification on the user's mobile device in accordance toblock 416. The process of operation continues to repeat to block 405 byreceiving new locations and determining if the user has entered anothermicrofence.

Dashboard

In accordance to one embodiment, the process of operation 400 alsoprovides information to the marketer 116 by displaying a dashboard withthe number of notifications sent to end users, the number of end userswho viewed the notifications and the number of offers that the end usersconverted. The information displayed on the dashboard assists themarketer to assess the success of the marketing campaign for which thenotification is created. After the selected notification has beenselected and displayed on the user's mobile device, in one embodiment,the process of operation 400 continues to block 418 via off pageconnector H in FIG. 4B in which the system 120 updates in its memorydevice with the number of notifications sent to end users and causes thenew number of notifications sent end users to be displayed on adashboard. The process of operation 400 then continues to block 420 inwhich the system 120 determines if the end user viewed the notification.In one embodiment, if the system received an signal from the mobiledevice 112 indicating that the end user 110 viewed the notification, thesystem updates the number of views by end users in its memory device andcauses the new number of views by end user to be displayed on thedashboard in accordance to block 422. If a signal is not received fromthe mobile device indicating that the end user viewed the notification,it is assumed that the notification has not yet been viewed by the enduser. In one embodiment, if a signal has not been received from themobile device indicating that the end user viewed the notification, thesystem continues to wait indefinitely for a signal that the end userviewed the notification, in accordance to block 428. In otherembodiments, if a signal has not been received from the mobile deviceindicating that the end user viewed the notification, the systemcontinues to wait until the promotion end date for the offer provided inthe notification. If the end customer viewed the notification, theprocess of operation 400 then continues to block 424 in which the systemthen determines if the end user converted the offer provided in thenotification. In one embodiment, if a signal has been received from theoffer service or product provider that the end user converted orredeemed the offer, the system updates in its memory device with thenumber of conversions by end users and causes the new number ofconversions by end user to be displayed on the dashboard in accordanceto block 426. If a signal has not been received from the service orproduct provider indicating that the end user converted the offerprovided in the notification, it is assumed that the offer has not yetbeen converted by the end user. In one embodiment, if a signal has notbeen received from the service or product provider indicating that theend user converted the offer, the system continues to wait indefinitelyfrom the service or product provider for an input that the end userconverted the notification, in accordance to block 428. In otherembodiments, if a signal has not been received from the service orproduct provider indicating that the end user converted the offer, thesystem continues to wait until the promotion end date for the offerprovided in the notification.

FIGS. 5A-B, and 6-8 illustrate screen shots of the dashboard availableto be displayed to the marketer. The dashboard includes severalinformation areas and input areas/buttons/icons. These information areasand input areas/buttons/icons are illustrated in a particulararrangement, but may be arranged in any suitable manner in differentembodiment. In some embodiments, the dashboard may include more or fewerinformation areas and input areas/buttons/icon than illustrated. In someother embodiments, the content of the information may be displayed as atable, a bar chart, pie chart, bar graph, or some other format.

FIG. 5A illustrates one embodiment of a dashboard showing locations ofexisting microfences and for receiving inputs to add or create a newmicrofence. The dashboard may be displayed on a computer monitor 118 ofa marketer 116 illustrated in FIG. 1. FIG. 5A illustrates a dashboard500 that includes a map 502 showing the locations of existingmicrofences 510 that were previously created by the marketer 116 orother user having access to the dashboard 500. In the event thatmultiple microfences are overlayed on the displayed map scale, a number512 is displayed to represent the number of microfences located at thatregion. The dashboard displays the instructions 514 to create a fenceand the instructions 516 to edit or delete a fence. The dashboard alsoprovides an input area 518 to search for a location by GPS coordinate,latitude and longitude, address, or road intersection. Should themarketer desires to zoom in or zoom out of the map, the marketer canchange the scale of the map by clicking the scale input button 504.Alternatively, the marketer can zoom in a particular region of the mapby clicking a particular region on the map 502.

FIG. 5B illustrates the dashboard 500 in which the system 120 receivedan input from the marketer, either by clicking the scale input button ora particular region of the map, to zoom in a region of downtown Chicago.At this scale of the map, all the individual microfences 510 arevisible. In one embodiment, each microfence 510 is identified by acentral location (such as GPS coordinate, latitude and longitude,address, or road intersection) and a radius from the central location todefine the border of the microfence. It should be noted that the radiusfrom the central location does not need to be the same for allmicrofences. For instance, the radius from the central location ofmicrofence 510A is approximately one city block (approximately a quarterof a mile) whereas the radius from the central location of microfence510B is approximately half a city block (approximately an eighth of amile). In other embodiments, a microfence need not be defined by acentral location and a radius from the central location, rather amicrofence can be defined by a rectangle representing a city block or anonuniform shape of a park. In addition to the system receiving inputsto define the location and border of a microfence, in one embodiment,the system can also receive inputs on the notifications that areavailable for the microfence in accordance to block 224 shown in FIG.2B.

FIG. 6 illustrates one embodiment of the dashboard 500 displaying theattributes for the highlighted/selected audience profile, Kim 530A. Alsoshown are buttons for audience profiles, Jenny 530B and Sally 530C,although the buttons for these other audience profiles are nothighlighted/selected in the dashboard. As previously discussed, Kim isnot an actual person. Rather Kim is a hypothetical person thatrepresents a group or cluster of end users having similar attributes.The use of an audience profile, such as Kim, allows the system toidentify the habits or attributes of an end user quickly and effectivelyby grouping or clustering the end user with other end users havingsimilar habits or attributes. In one embodiment, the illustrateddashboard 500 includes app usage 540 for Kim, routine commutes 542 forKim, fast food visits by car 544 for Kim, clothing store visits by car546 for Kim, and fast food visits by bus 548 for Kim. The illustrateddashboard 500 also includes a summary 550 for Kim displaying otherattributes. In other embodiments, additional attributes for an audienceprofile can be determined and displayed, including but not limited topregnancy, estimated income level, neighborhood type (suburban, rural,urban), religious beliefs, dining habits, exercise habits, educationlevel, age/phase of life, and health problems. For the illustratedembodiment, should the marketer wish to view the attributes for one ofthe other audience profiles, the marketer can click on the button forJenny 530B or Sally 530C. In other embodiments more or fewer audienceprofiles can be available in the dashboard 500.

FIG. 7 illustrates one embodiment of the dashboard 500 showing thenotifications 590A-E available for a particular microfence. Thedashboard 500 displays the notifications 590A-E that are available tothe end users, the name 592A-E of each notification and the promotiondate range 594A-E of each notification. As illustrated in FIG. 7, andalso FIGS. 5A, 5B and 6, the performance of the highlighted notification590A is displayed. For the highlighted notification 590A, the dashboarddisplays in display area 570 the number of notifications that thishighlighted notification 590A had been sent to end users. In oneembodiment, the number of notifications displayed in display area 570 isupdated in the process of operation 400 in block 418 in FIG. 4B. Thedashboard also displays in display area 572 the number of views of thehighlighted notification 590A by end users and displays in the displayarea 574 the number of conversions of the offers provided in thehighlighted notification 590A. In one embodiment, the number of viewsand the number of conversions displayed in display areas 572 and 574 areupdated in the process of operation 400 in blocks 422 and 426 in FIG.4B. The performance of the highlighted notification 590A can also beillustrated graphically by one or more graphs in display area 576 asshown in FIGS. 5A, 5B, 6 and 7.

FIG. 8 illustrates one embodiment of the dashboard 500 displaying thestatistic and performance for a particular audience profile 530 from thepossible audience profiles, Kim 530A, Jenny 530B and Sally 530C. Theillustrated dashboard 500 shows the statistics and performance for Kim530A, the selected and highlighted audience profile. In one embodiment,the dashboard 500 displays in the display area 560 the total number ofend users that are associated with the Kim audience profile 530A. Thedashboard 500 also displays in the display area 562 the percentage oftotal end users that are associated with the Kim audience profile anddisplays in the display area 564 the average number of new end usersthat are being associated with the Kim audience profile each day.

In addition to providing the statistics for the Kim audience profile, inone embodiment, the dashboard displays one or more graphs 580 showingthe performance for the Kim audience profile. The graphs 580 illustratedin FIG. 8 include a graph showing the number of notifications 582A sentto end users associated with the Kim audience profile. The graphsillustrated in FIG. 8 also include a graph showing the number of views582B made by end users associated with the Kim audience profile and agraph showing the number of offer conversions 582C made by end usersassociated with the Kim audience profile in response to viewing thenotifications. The performance graphs 580 can be for all time periods,as illustrated in FIG. 8, by selecting the “All” button 584A.Alternatively, the displayed time period for the graphs 580 can bechanged by selecting the “1 Year” button 530B, the “6 Months” button530C, the Month” button 530D, the “Week” button 530E, the “Day” button560F, or the “Hour” button 560G. The performance graphs 580 can bedisplayed in increments of each date, as illustrated in FIG. 8, byselecting the “Date” button 586A. Alternatively, the graphs 580 can bedisplayed in other increments by selecting the “Day of Week” button586B, the “Day of Month” button 586C, the “Months” button 586D, or the“Years” button 586E.

FIG. 9 illustrates a mobile device 112 of the end user 110 displayingthe selected notification 590A in FIG. 7. In accordance to block 414 inFIG. 4A, the system selects a notification 590, from the plurality ofnotifications available for and associated with the microfence 510 thatthe end user has entered, based on the audience profile attributes forthe audience profile associated with the end user and the contentattributes associated with the notifications available for themicrofence. Once the system selects the notification, the system 120causes the end user's mobile device 112 to display the selectednotification in accordance to block 416. In one embodiment, thenotification may include one or more promotional offers (including butnot limited to coupons, discounts, sample give away, and other offers)that are available to a customer to redeem or convert. In otherembodiments, the notification may also include additional informationabout the promotional offer, such as the effective dates of the offer.FIG. 9 illustrates the notification on the end user's mobile deviceoffering a free cup of coffee.

A number of embodiments of the invention have been described. Variousmodifications may be made without departing from the spirit and scope ofthe invention. For example, various forms of the flows shown above maybe used, with steps re-ordered, added, or removed. The following claimsin its broader aspects is therefore not limited to the specific details,representative system and method, and illustrative example shown anddescribed. Accordingly, other embodiments are within the scope of thefollowing claims.

We claim:
 1. A system comprising: one or more memory devices storingprograming instructions; one or more processors configured to executethe program instructions to cause the system to perform operationscomprising: receiving a fence defined by a first user, the fenceincludes an area having a geographic location, a plurality ofnotifications and their content attributes are associated with thefence; receiving location and speed from a mobile device of a seconduser; determining the mobile device of the second user is stationary fora predetermined amount of time; identifying a location attribute for thelocation of mobile device of the second user; associating the locationattribute with the second user; aggregating a plurality of locationattributes associated with the second user; determining an audienceprofile and audience profile attributes for the second user based on theaggregated location attributes for the second user; detecting that thesecond user has crossed into an area defined by the fence; and inresponse to detecting the second user crossing the fence: determining aconversion probability based on content attributes of the notificationsassociated with the fence and audience profile attributes of theaudience profile associated with the second user; selecting anotification based the conversion probability; causing the selectednotification to be displayed on the mobile device of the second user;determining that the second user converted on an offer shown on theselected notification; and causing a monitor to display total number ofconversions of an offer shown on the selected notification viewed by allusers.
 2. The system of claim 1, wherein the one or more processorsfurther cause a monitor to display total number of selectednotifications sent to all users.
 3. The system of claim 2, wherein theone or more processors further update the displayed total number ofselected notifications sent to all users.
 4. The system of claim 1,wherein the one or more processors further determines that selectednotification has been viewed.
 5. The system of claim 4, wherein the oneor more processors further cause a monitor to display total number ofselected notifications viewed by all users.
 6. The system of claim 5,wherein the one or more processors further update the displayed totalnumber of selected notifications viewed by all users.
 7. The system ofclaim 1, wherein the one or more memory devices further store aplurality of audience profile attributes associated with an audienceprofile.
 8. The system of claim 1, wherein the one or more memorydevices further store a plurality of notifications available for thefence.
 9. The system of claim 8, wherein the one or more memory devicesfurther store a plurality of content attributes for each notification.10. The system of claim 1, wherein selecting a notification based theconversion probability involves selecting the notification that shows anoffer that the second user is mostly likely to convert.
 11. The systemof claim 1, wherein determining the mobile device of the second user isstationary for a predetermined amount of time involves receivinglocation periodically from the mobile device of the second user todetermine if the mobile device was located beyond a predetermineddistance from the original location during the predetermined amount oftime.
 12. A system comprising: one or more memory devices storingprograming instructions; one or more processors configured to executethe program instructions to cause the system to perform operationscomprising: receiving a fence defined by a first user, the fenceincludes an area having a geographic location, a plurality ofnotifications and their content attributes are associated with thefence; receiving location and speed from a mobile device of a seconduser; determining the mobile device of the second user is stationary fora predetermined amount of time, location where the second user remainedstationary for a predetermined amount of time creates a second fence;identifying a location attribute for the location of mobile device ofthe second user; associating the location attribute with the seconduser; aggregating a plurality of location attributes associated with thesecond user; determining an audience profile and audience profileattributes for the second user based on the aggregated locationattributes for the second user; detecting that the second user hascrossed into an area defined by the fence; and in response to detectingthe second user crossing the fence: determining a conversion probabilitybased on content attributes of the notifications associated with thefence and audience profile attributes of the audience profile associatedwith the second user; selecting a notification based the conversionprobability; and causing the selected notification to be displayed onthe mobile device of the second user.
 13. The system of claim 12,wherein the one or more processors further cause a monitor to displaytotal number of selected notifications sent to all users.
 14. The systemof claim 13, wherein the one or more processors further update thedisplayed total number of selected notifications sent to all users. 15.The system of claim 12, wherein the one or more processors furtherdetermines that selected notification has been viewed.
 16. The system ofclaim 15, wherein the one or more processors further cause a monitor todisplay total number of selected notifications viewed by all users. 17.The system of claim 16, wherein the one or more processors furtherupdate the displayed total number of selected notifications viewed byall users.
 18. The system of claim 12, wherein the one or more memorydevices further store a plurality of audience profile attributesassociated with an audience profile.
 19. The system of claim 12, whereinthe one or more memory devices further store a plurality ofnotifications available for the fence.
 20. The system of claim 19,wherein the one or more memory devices further store a plurality ofcontent attributes for each notification.
 21. The system of claim 12,wherein selecting a notification based the conversion probabilityinvolves selecting the notification that shows an offer that the seconduser is mostly likely to convert.
 22. The system of claim 12, whereindetermining the mobile device of the second user is stationary for apredetermined amount of time involves receiving location periodicallyfrom the mobile device of the second user to determine if the mobiledevice was located beyond a predetermined distance from the originallocation during the predetermined amount of time.
 23. A systemcomprising: one or more memory devices storing programing instructions;one or more processors configured to execute the program instructions tocause the system to perform operations comprising: receiving a fencedefined by a first user, the fence includes an area having a geographiclocation, a plurality of notifications and their content attributes areassociated with the fence; receiving location and speed from a mobiledevice of a second user; determining the mobile device of the seconduser is stationary for a predetermined amount of time, location wherethe second user remained stationary for a predetermined amount of timecreated a second fence, the one or more memory devices store location ofthe second fence and its location attributes; identifying a locationattribute for the location of mobile device of the second user;associating the location attribute with the second user; aggregating aplurality of location attributes associated with the second user;determining an audience profile and audience profile attributes for thesecond user based on the aggregated location attributes for the seconduser; detecting that the second user has crossed into an area defined bythe fence; and in response to detecting the second user crossing thefence: determining a conversion probability based on content attributesof the notifications associated with the fence and audience profileattributes of the audience profile associated with the second user;selecting a notification based the conversion probability; and causingthe selected notification to be displayed on the mobile device of thesecond user.